package com.ayz.gateway.client;

import cn.hutool.core.util.ArrayUtil;
import lombok.Data;

/**
 * @ClassName ServerInfo
 * @Description TODO: 服务端的详细信息
 * @Author 快乐的星球
 * @Date 2023/5/20 12:47
 * @Version 1.0
 **/
@Data
public class ServerInfo {
    /**
     * 服务端的IP
     */
    private String ip;
    /**
     * 服务端的端口号
     */
    private int port;
    /**
     * 服务端的地址
     */
    private String address;

    /**
     * 根据服务端的地址 格式必须为 "ip:port"
     * 否则会直接报错 这里不会做参数校验
     * @param serverAddress
     * @return
     */
    public static ServerInfo getInstance(String serverAddress){
        String[] split = serverAddress.split(":");
        ServerInfo serverInfo=new ServerInfo();
        if(ArrayUtil.isNotEmpty(split) && split.length==2){
            serverInfo.setIp(split[0]);
            int port=Integer.parseInt(split[1]);
            serverInfo.setPort(port);
            serverInfo.setAddress(serverAddress);
            return serverInfo;
        }else {
            throw new IllegalArgumentException("当前方法的入参的地址格式必须为:{SIP:SPORT}");
        }
    }
}
